<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JS错误处理</title>
</head>

<body>
    <script>
        // 尝试
        try {
            // console.log(123);
            // console.log(a);
            // console.log(789);
            //手动的抛出错误
            // throw new Error('要降温了~~~');
            //抛出任意值
            // throw '出了问题啦~~';
        } catch (e) {  // catch 捕获  抓住
            // console.dir(e); // message   stack
        }
        // console.log(456);

        /**
         * 语法固定 try...catch   try 尝试的意思  catch 捕获  作用: 统一处理错误
         * 1. try catch捕获到错误之后, 后续代码可以继续执行
         * 2. catch 可以将错误信息捕获到. e 是一个对象, 有 message 和 stack 两个属性
         *                                             错误信息    错误位置
         * 3. 抛出错误之后, 在后续的 try 里面的代码不会执行
         * 4. try 不能捕获语法错误. 其他类型错误可以捕获. 
         * 5. 允许使用 throw 手动的抛出错误 
         * 6. 抛出任意类型的数据
         */
        
        /**
         * try...catch
         * 1. 处理错误, 使代码正常运行
         * 2. 统一错误处理
         */
    </script>
</body>

</html>